{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from keras.callbacks import ModelCheckpoint,EarlyStopping,ReduceLROnPlateau,TensorBoard\n",
    "from keras.models import Model\n",
    "from keras import backend as K\n",
    "from keras.optimizers import Adam\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import os\n",
    "from losses import bce_dice_loss\n",
    "from rssegnet import RSSegVGGNet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 从训练集取样本\n",
    "# samples_data_root = 'D:/Data/mc_data/train/images/0/'\n",
    "\n",
    "# filenames = np.random.choice(os.listdir(samples_data_root), 1000)\n",
    "# samples = []\n",
    "# for fn in filenames:\n",
    "#     fullname = samples_data_root + fn\n",
    "#     image = Image.open(fullname)\n",
    "#     image_arr = np.array(image)\n",
    "#     samples.append(image_arr)\n",
    "\n",
    "# sample_images = np.array(samples)\n",
    "# print(sample_images.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def adjust_data(img,mask):\n",
    "    mean_ = np.array([96.24618792,104.67673492,99.35844062])\n",
    "    img = (img - mean_) / 255\n",
    "    mask = mask / 255\n",
    "    mask[mask > 0.5] = 1\n",
    "    mask[mask <= 0.5] = 0\n",
    "    return (img,mask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_train_generator():\n",
    "    train_data_root = 'D:/Data/AerialImageDataset/train'  # 训练集存放路径\n",
    "\n",
    "    # data augmentation\n",
    "    # data_gen_args = dict(rotation_range=0.2,\n",
    "    #                     width_shift_range=0.05,\n",
    "    #                     height_shift_range=0.05,\n",
    "    #                     shear_range=0.05,\n",
    "    #                     zoom_range=0.05,\n",
    "    #                     horizontal_flip=True,\n",
    "    #                     fill_mode='constant')\n",
    "    data_gen_args = dict()\n",
    "\n",
    "    train_image_datagen = ImageDataGenerator(**data_gen_args)\n",
    "    train_mask_datagen = ImageDataGenerator(**data_gen_args)\n",
    "\n",
    "    seed=1\n",
    "\n",
    "    train_image_generator = train_image_datagen.flow_from_directory(\n",
    "        train_data_root + '/images_clipped',\n",
    "        class_mode=None,\n",
    "        batch_size=16,\n",
    "        seed=seed,\n",
    "        color_mode='rgb')\n",
    "\n",
    "    train_mask_generator = train_mask_datagen.flow_from_directory(\n",
    "        train_data_root + '/gt_clipped',\n",
    "        class_mode=None,\n",
    "        batch_size=16,\n",
    "        seed=seed,\n",
    "        color_mode='grayscale')\n",
    "\n",
    "    # combine generators into one which yields image and masks\n",
    "    train_generator = zip(train_image_generator, train_mask_generator)\n",
    "    \n",
    "    for (image, mask) in train_generator:\n",
    "#         print(image.shape)\n",
    "#         print(mask.shape)\n",
    "        yield adjust_data(image, mask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_val_generator():\n",
    "    val_data_root = 'D:/Data/AerialImageDataset/val'  # 验证集存放路径\n",
    "    \n",
    "    # data augmentation\n",
    "    # data_gen_args = dict(rotation_range=0.2,\n",
    "    #                     width_shift_range=0.05,\n",
    "    #                     height_shift_range=0.05,\n",
    "    #                     shear_range=0.05,\n",
    "    #                     zoom_range=0.05,\n",
    "    #                     horizontal_flip=True,\n",
    "    #                     fill_mode='nearest')\n",
    "    data_gen_args = dict()\n",
    "\n",
    "    val_image_datagen = ImageDataGenerator(**data_gen_args)\n",
    "    val_mask_datagen = ImageDataGenerator(**data_gen_args)\n",
    "\n",
    "    seed = 1\n",
    "\n",
    "    val_image_generator = val_image_datagen.flow_from_directory(\n",
    "        val_data_root + '/images_clipped',\n",
    "        class_mode=None,\n",
    "        batch_size=16,\n",
    "        seed=seed,\n",
    "        color_mode='rgb')\n",
    "\n",
    "    val_mask_generator = val_mask_datagen.flow_from_directory(\n",
    "        val_data_root + '/gt_clipped',\n",
    "        class_mode=None,\n",
    "        batch_size=16,\n",
    "        seed=seed,\n",
    "        color_mode='grayscale')\n",
    "\n",
    "    val_generator = zip(val_image_generator, val_mask_generator)\n",
    "    \n",
    "    for (image, mask) in val_generator:\n",
    "#         print(image.shape)\n",
    "#         print(mask.shape)\n",
    "        yield adjust_data(image, mask)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "image_input (InputLayer)        (None, 256, 256, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_1 (Conv2D)               (None, 256, 256, 64) 1792        image_input[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_2 (Conv2D)               (None, 256, 256, 64) 36928       conv2d_1[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_1 (MaxPooling2D)  (None, 128, 128, 64) 0           conv2d_2[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_3 (Conv2D)               (None, 128, 128, 128 73856       max_pooling2d_1[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_4 (Conv2D)               (None, 128, 128, 128 147584      conv2d_3[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_2 (MaxPooling2D)  (None, 64, 64, 128)  0           conv2d_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_5 (Conv2D)               (None, 64, 64, 256)  295168      max_pooling2d_2[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_6 (Conv2D)               (None, 64, 64, 256)  590080      conv2d_5[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_7 (Conv2D)               (None, 64, 64, 256)  590080      conv2d_6[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_3 (MaxPooling2D)  (None, 32, 32, 256)  0           conv2d_7[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_8 (Conv2D)               (None, 32, 32, 512)  1180160     max_pooling2d_3[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_9 (Conv2D)               (None, 32, 32, 512)  2359808     conv2d_8[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_10 (Conv2D)              (None, 32, 32, 512)  2359808     conv2d_9[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_4 (MaxPooling2D)  (None, 16, 16, 512)  0           conv2d_10[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_11 (Conv2D)              (None, 16, 16, 512)  2359808     max_pooling2d_4[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_12 (Conv2D)              (None, 16, 16, 512)  2359808     conv2d_11[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_13 (Conv2D)              (None, 16, 16, 512)  2359808     conv2d_12[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "max_pooling2d_5 (MaxPooling2D)  (None, 8, 8, 512)    0           conv2d_13[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_14 (Conv2D)              (None, 8, 8, 512)    2359808     max_pooling2d_5[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_transpose_1 (Conv2DTrans (None, 16, 16, 256)  1179904     conv2d_14[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_1 (Concatenate)     (None, 16, 16, 768)  0           conv2d_transpose_1[0][0]         \n",
      "                                                                 conv2d_13[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_15 (Conv2D)              (None, 16, 16, 512)  3539456     concatenate_1[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_transpose_2 (Conv2DTrans (None, 32, 32, 256)  1179904     conv2d_15[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_2 (Concatenate)     (None, 32, 32, 768)  0           conv2d_transpose_2[0][0]         \n",
      "                                                                 conv2d_10[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_16 (Conv2D)              (None, 32, 32, 512)  3539456     concatenate_2[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_transpose_3 (Conv2DTrans (None, 64, 64, 128)  589952      conv2d_16[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_3 (Concatenate)     (None, 64, 64, 384)  0           conv2d_transpose_3[0][0]         \n",
      "                                                                 conv2d_7[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_17 (Conv2D)              (None, 64, 64, 256)  884992      concatenate_3[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_transpose_4 (Conv2DTrans (None, 128, 128, 64) 147520      conv2d_17[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_4 (Concatenate)     (None, 128, 128, 192 0           conv2d_transpose_4[0][0]         \n",
      "                                                                 conv2d_4[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_18 (Conv2D)              (None, 128, 128, 128 221312      concatenate_4[0][0]              \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_transpose_5 (Conv2DTrans (None, 256, 256, 32) 36896       conv2d_18[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "concatenate_5 (Concatenate)     (None, 256, 256, 96) 0           conv2d_transpose_5[0][0]         \n",
      "                                                                 conv2d_2[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "conv2d_19 (Conv2D)              (None, 256, 256, 1)  865         concatenate_5[0][0]              \n",
      "==================================================================================================\n",
      "Total params: 28,394,753\n",
      "Trainable params: 28,394,753\n",
      "Non-trainable params: 0\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model = RSSegVGGNet.build()\n",
    "model.compile(loss=bce_dice_loss, optimizer=Adam(), metrics=['accuracy'])\n",
    "model.summary()\n",
    "# model.load_weights(\"building_seg_vgg16_bcedice_0829.h5\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/1000\n",
      "Found 60000 images belonging to 1 classes.\n",
      "Found 60000 images belonging to 1 classes.\n",
      "3749/3750 [============================>.] - ETA: 0s - loss: 0.5898 - acc: 0.9108Found 12000 images belonging to 1 classes.\n",
      "Found 12000 images belonging to 1 classes.\n",
      "3750/3750 [==============================] - 1954s 521ms/step - loss: 0.5897 - acc: 0.9108 - val_loss: 0.5391 - val_acc: 0.9252\n",
      "Epoch 2/1000\n",
      "3750/3750 [==============================] - 2443s 651ms/step - loss: 0.4263 - acc: 0.9372 - val_loss: 0.4402 - val_acc: 0.9436\n",
      "Epoch 3/1000\n",
      "3750/3750 [==============================] - 2348s 626ms/step - loss: 0.3805 - acc: 0.9443 - val_loss: 0.4352 - val_acc: 0.9476\n",
      "Epoch 4/1000\n",
      "3750/3750 [==============================] - 2436s 650ms/step - loss: 0.3542 - acc: 0.9483 - val_loss: 0.3942 - val_acc: 0.9528\n",
      "Epoch 5/1000\n",
      "3750/3750 [==============================] - 2369s 632ms/step - loss: 0.3381 - acc: 0.9508 - val_loss: 0.3934 - val_acc: 0.9520\n",
      "Epoch 6/1000\n",
      "3750/3750 [==============================] - 2384s 636ms/step - loss: 0.3257 - acc: 0.9527 - val_loss: 0.3996 - val_acc: 0.9496\n",
      "Epoch 7/1000\n",
      "3750/3750 [==============================] - 2383s 636ms/step - loss: 0.3136 - acc: 0.9545 - val_loss: 0.3712 - val_acc: 0.9552\n",
      "Epoch 8/1000\n",
      "3750/3750 [==============================] - 2374s 633ms/step - loss: 0.3069 - acc: 0.9555 - val_loss: 0.3606 - val_acc: 0.9542\n",
      "Epoch 9/1000\n",
      "3750/3750 [==============================] - 2377s 634ms/step - loss: 0.2954 - acc: 0.9572 - val_loss: 0.3833 - val_acc: 0.9503\n",
      "Epoch 10/1000\n",
      "3750/3750 [==============================] - 2402s 640ms/step - loss: 0.2893 - acc: 0.9582 - val_loss: 0.3412 - val_acc: 0.9569\n",
      "Epoch 11/1000\n",
      "3750/3750 [==============================] - 2368s 632ms/step - loss: 0.2818 - acc: 0.9594 - val_loss: 0.3811 - val_acc: 0.9545\n",
      "Epoch 12/1000\n",
      "3750/3750 [==============================] - 2361s 630ms/step - loss: 0.2762 - acc: 0.9602 - val_loss: 0.3404 - val_acc: 0.9562\n",
      "Epoch 13/1000\n",
      "3750/3750 [==============================] - 2368s 632ms/step - loss: 0.2766 - acc: 0.9601 - val_loss: 0.3288 - val_acc: 0.9592\n",
      "Epoch 14/1000\n",
      "3750/3750 [==============================] - 2367s 631ms/step - loss: 0.2739 - acc: 0.9606 - val_loss: 0.3215 - val_acc: 0.9606\n",
      "Epoch 15/1000\n",
      "3750/3750 [==============================] - 2369s 632ms/step - loss: 0.2693 - acc: 0.9612 - val_loss: 0.3685 - val_acc: 0.9535\n",
      "Epoch 16/1000\n",
      "3750/3750 [==============================] - 1932s 515ms/step - loss: 0.2702 - acc: 0.9612 - val_loss: 0.3323 - val_acc: 0.9593\n",
      "Epoch 17/1000\n",
      "3750/3750 [==============================] - 1925s 513ms/step - loss: 0.2596 - acc: 0.9627 - val_loss: 0.3569 - val_acc: 0.9540\n",
      "Epoch 18/1000\n",
      "3750/3750 [==============================] - 1925s 513ms/step - loss: 0.2655 - acc: 0.9619 - val_loss: 0.3362 - val_acc: 0.9566\n",
      "Epoch 19/1000\n",
      "3750/3750 [==============================] - 1924s 513ms/step - loss: 0.2614 - acc: 0.9625 - val_loss: 0.3188 - val_acc: 0.9609\n",
      "Epoch 20/1000\n",
      "3750/3750 [==============================] - 1926s 513ms/step - loss: 0.4194 - acc: 0.9383 - val_loss: 0.4141 - val_acc: 0.9477\n",
      "Epoch 21/1000\n",
      "3750/3750 [==============================] - 1924s 513ms/step - loss: 0.3384 - acc: 0.9510 - val_loss: 0.4198 - val_acc: 0.9461\n",
      "Epoch 22/1000\n",
      "3750/3750 [==============================] - 1927s 514ms/step - loss: 0.3416 - acc: 0.9505 - val_loss: 0.4130 - val_acc: 0.9492\n"
     ]
    }
   ],
   "source": [
    "callback_list = [\n",
    "    EarlyStopping(\n",
    "        monitor='acc',\n",
    "        patience=5,\n",
    "    ),\n",
    "    ModelCheckpoint(\n",
    "        filepath='building_seg_vgg16_bcedice_0915.h5',\n",
    "        monitor='val_loss',\n",
    "        save_best_only=True,\n",
    "    ),\n",
    "    ReduceLROnPlateau(\n",
    "        monitor='val_loss',\n",
    "        factor=0.1,\n",
    "        patience=5,\n",
    "    ),\n",
    "    TensorBoard(\n",
    "        log_dir = 'logs'\n",
    "    ),\n",
    "]\n",
    "\n",
    "history = model.fit_generator(make_train_generator(),\n",
    "                              epochs=1000,\n",
    "                              steps_per_epoch=int(60000/16),\n",
    "                              validation_data=make_val_generator(),\n",
    "                              validation_steps=int(12000/16),\n",
    "                              callbacks=callback_list,\n",
    "                              verbose=1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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AlNUdZmIjANyVXV6GesuE5HXgeVAPnB7WQE/lTz2mEvVun+/e+3bd+R9oNehQ+6Kvnfv0BK51a8P773nAn+/fq7+v27diH9FY44bP/3k7p7Hjo13SaLPEq6lsM8/hwsucNVAH3zguqoZk4reeguuuMJVlR6v6Rcs4ZoJKCvLjRv45BPXDpBg539jYiYnx7WZdU2BDuUxenqjSVRDhrhHu40fD6ef7toajEk1OTluQFbVqvEuSfTZlb5h3Di47jrXjfS//413aYyJra1b3WNNk72rZhEL+mHIznbP1KxQwf3Mzo53iUJToQK89JJr2B2dyMwLAAAWGElEQVQ82CWcireFC+Hss10dqzHR9Pnn7qcFfVOmomdprl/v6sLXr3fTx2vgr1bNNWY1bgyXXQYbNsSvLDNnun/AefPg1luPdE+NtoMHXTfaH36Izf5MYsjJcWkXMgM2gSYHC/ohGj362Icn79t3fKc3aNQI3n3XpXHo189lBY219993D4k+5RR47jn45ht4/vnY7PvRR12bxm23xWZ/JjHk5LgeO6nSe82CfohKuxKO5xVyJLRpA2+84YLtdde5nD2xMm2ae5h827buan/ECNeldOxYN6Asmtasgb/8xZ343nzTpa0wye+HH2DFitSp2gEL+iErLS9cMuSL69PHXV1/+KFLBx2LrpwvvAA33AC/+IVLLdGwoRt9/NRT7o5jzJjo7VvVfc+KFd1AtVat3PTBg9Hbp0kMRaNvLeibgMaPd49C9FW9upufDIYNgz/+0QX/p5+O7r4efthd1V9yiTvR1K595LO2bd1nf/0rLPOb+CN806e7EcoPPOBSUkycCN9+CxMmRGd/JnHk5Li/t86d412SGFLVhHp16dJFjxdTp6qmpamKuJ9Tp8a7RJFVUKB65ZXu+739duS3X1ioes89qqA6cKDqoUP+l9u2TbVePdULLnDrRNLeve5317bt0fu//HLVGjVUN26M7P5MYjntNNVLL413KSIDlxYnYIyNe5Av+Tqegn4q2LtX9ayzVKtXV508WXXfvshsNz9f9dZb3V/giBFuuixPP+2WjfTJ57773HY///zo+WvWqFarpnrddZHdn0kcGze63/0TT8S7JJFhQd9EzObNqpmZ7q+lfn3V0aNVv/8+9O0dPOiCKajee29wV++HDqm2bu2uzA4cCH3fvlasUK1cWfXG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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "acc = history.history['acc']\n",
    "val_acc = history.history['val_acc']\n",
    "loss = history.history['loss']\n",
    "val_loss = history.history['val_loss']\n",
    "epochs = range(1, len(acc) + 1)\n",
    "plt.plot(epochs, acc, 'bo', label='Training acc')\n",
    "plt.plot(epochs, val_acc, 'b', label='Validation acc')\n",
    "plt.title('Training and validation accuracy')\n",
    "plt.legend()\n",
    "plt.figure()\n",
    "plt.plot(epochs, loss, 'bo', label='Training loss')\n",
    "plt.plot(epochs, val_loss, 'b', label='Validation loss')\n",
    "plt.title('Training and validation loss')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
